Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

proccess error

Îåêßíçóå áðü ôï ìÝëïò mikevam. Τελευταία δημοσίευση από το μέλος mikevam στις 22-04-2012, 21:30. Υπάρχουν 2 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  22-04-2012, 02:20 70088

    proccess error

    Σε vs2008 έχω δημιουργήσει ένα Process Για να εκτελώ τo shutdown των windows για απομακρυσμένη επανεκκίνηση Η/Υ μέσω δικτύου. Ενώ με το visual studio  όταν τρέχω το debug δουλεύουν όλα άψογα και γίνετε η επανεκκίνηση στους υπολογιστές που θέλω, όταν το τοποθετώ στον IIS server( Windows 7 pc) χωρίς να βγάζει σφάλμα και ενώ όλα δουλεύουν κανονικά δείχνει σαν να μην την εκτελεί. Πρέπει να διορθώσω κάτι με τα δικαιώματα ή κάτι άλλο συμβαίνει.
  •  22-04-2012, 18:44 70089 σε απάντηση της 70088

    Απ: proccess error

    Καταρχήν, δεν είναι πολύ ευγενικό να κάνεις 3 φορές το ίδιο post σε διαφορετικές κατηγορίες. Όχι μόνο δεν αυξάνονται οι πιθανότητες να πάρεις απάντηση, αντιθέτως μειώνονται επειδή ενοχλείς τα υπόλοιπα μέλη.

    Όσον αφορά την ίδια την ερώτηση, δεν έχεις δώσει σχεδόν καθόλου στοιχεία. Τί εννοείς "έχω δημιουργήσει ένα Process"? Αναφέρεσαι στην κλάση Process ή σε κάτι άλλο? Πως προσπαθείς να κάνεις restart τα Windows? Η Process δεν έχει καμμία μέθοδο για να κάνει κάτι τέτοιο. Τί πάει να πει "χωρίς σφάλμα"? Έχεις βάλει κώδικα για error logging και δεν δούλεψε? Δεν έγραψε τίποτε?

    Μήπως δοκίμασες να τρέξεις κανένα command line με την Process.Start και δεν κοιτάς τα αποτελέσματα? Ο,τιδήποτε γράφει ένα console application γράφεται είτε στο Standard Out είτε στο Error stream. Για να δεις αυτά τα αποτελέσματα στο .NET θα πρέπει να διαβάσεις τα περιεχόμενα των StandardError και StandardOutput streams.

    Λες ότι διαπίστωσες διαφορετική συμπεριφορά στον IIS - καθόλου απίθανο, αυτονόητο θα έλεγα. Ένα site στον IIS τρέχει κάτω από account με περιορισμένα δικαιώματα, ενώ εσύ στο μηχάνημα σου έχεις το λιγότερο administrator δικαιώματα για να μπορείς να κάνεις debug. Η δυνατότητα να κάνεις restart είναι προφανώς μία λειτουργία η οποία απαιτεί πολύ υψηλά δικαιώματα. Για να δουλέψει τέτοιος κώδικας θα πρέπει να εκτελεστεί δίνοντας τα credentials κάποιου account το οποίο έχει δικαίωμα να κάνει restart στα μηχανήματα.

    Όπως και να έχει, όλη η διαδικασία είναι ΠΟΛΥ προβληματική. Καταρχήν, τα ίδια τα Windows έχουν μηχανισμούς για remote management. Δεν υπάρχει κανένας λόγος να φτιάξεις τον δικό σου, ανοίγοντας κατά πάσα πιθανότητα τρύπες στην ασφάλεια των μηχανημάτων. Μπορείς να χρησιμοποιήσεις WMI ή το πιο πρόσφατο WinRM για remote administration. Το Powershell επίσης επιτρέπει το remote administration αν και στην πραγματικότητα πατάει πάνω στο WinRM γι αυτό. Μπορείς να κάνεις restart απλά καλώντας την Restart-Computer και δίνοντας τα κατάλληλα credentials.  

    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  22-04-2012, 21:30 70090 σε απάντηση της 70089

    Απ: proccess error

    Καλησπέρα και ευχαριστώ πολύ για την απάντηση.

     Η δημιουργία 3 ίδιων Post έγινε εν αγνοία καθώς ήταν και η πρώτη προσπάθεια οπότε και ζητάω συγνώμη από όλους του υπόλοιπους που μπήκαν στην διαδικασία να διαβάσουν 3 φορές το ίδιο ερώτημα.Αναφερόμουν σε κλάση Process και εκτελώντας  την εφαρμογή shutdown.exe μέσα από τα windows με την οποία μπορείς να κάνεις απομακρυσμένη επανεκκίνηση ..

    Process p = new Process();
    p.StartInfo.FileName = "shutdown.exe";
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.CreateNoWindow = false;
    p.StartInfo.Arguments = "-r -t 50 -m \\Pc_Test";


    p.StartInfo.RedirectStandardOutput = true;
    p.Start();
    Console.WriteLine(p.StandardOutput.ReadToEnd());

     

    Το StandardOutput δεν εμφανίζει κανένα αποτέλεσμα.To πρόβλημα όντως οφείλετε στα δικαιώματα, χωρίς να γνωρίζω κάποιον τρόπο για να το ξεπεράσω.

    Πως μπορώ να δηλώσω τα credentials κάποιου account;

     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems